#include <iostream>
#include <vector>
#include <numeric> // std::accumulate

// 使用 long long 来防止数字和或进位总数溢出
using ll = long long;

int main() {
    // ----------------- 输入输出优化 -----------------
    // 在 OI/ACM 竞赛中，这可以显著加快大规模数据的读写速度
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);

    // ----------------- 读取输入 -----------------
    int n;
    std::cin >> n;
    std::vector<ll> a(n);
    for (int i = 0; i < n; ++i) {
        std::cin >> a[i];
    }

    // ----------------- 核心算法 -----------------
    
    ll total_carries = 0; // 用于累计所有位的总进位次数
    ll carry_from_last_digit = 0; // 从上一位传递到当前位的进位总数

    // 循环处理每一位，从个位（10^0）开始，直到所有数字都处理完毕
    // 循环终止条件：当所有数字都变为0，并且没有从低位传来的进位时，计算结束
    bool all_zeros = false;
    while (!all_zeros || carry_from_last_digit > 0) {
        
        ll current_digit_sum = 0; // 当前位所有数字的总和
        all_zeros = true; // 假设本轮循环后所有数字都将变为0

        // 遍历序列中的每一个数
        for (int i = 0; i < n; ++i) {
            // 如果数字大于0，说明它还有未处理的位
            if (a[i] > 0) {
                // a[i] % 10 取出当前数字的最低位（即当前处理的位）
                current_digit_sum += a[i] % 10;
                // 将该数字除以10，为其在下一轮更高位的计算做准备
                a[i] /= 10;
                // 如果 a[i] 在处理后仍然大于0，说明它还有更高位，
                // 因此循环需要继续
                if (a[i] > 0) {
                    all_zeros = false;
                }
            }
        }
        
        // 将当前位所有数字的和与来自上一位的进位相加
        ll total_sum_at_this_digit = current_digit_sum + carry_from_last_digit;
        
        // 计算将要传递到下一位（更高位）的进位总数
        // 例如，如果当前位总和为123，则有12个进位到下一位
        ll new_carries = total_sum_at_this_digit / 10;
        
        // 将本位产生的进位累加到总进位次数中
        total_carries += new_carries;
        
        // 更新 carry_from_last_digit，为下一轮更高位的计算做准备
        carry_from_last_digit = new_carries;
    }

    // ----------------- 输出结果 -----------------
    std::cout << total_carries << std::endl;

    return 0;
}
